assume cs:code
a segment
    dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh; 32个字节
a ends

b segment
    dw 0,0,0,0,0,0,0,0 ;16个字节
b ends

code segment
start:
      mov ax,a ;
      mov ds,ax ;ds指向a段

      mov ax,b
      mov ss,ax ;ss指向b段
      mov sp,16 ;初始化栈顶，注意不是15，0-15共计16个字节，需要一个额外的字节

      mov cx,8
      mov bx,0
   s: 
      push [bx] ;获取a段数据
      add bx,2
      loop s

    mov ax,4c00h
    int 21h

code ends
end start